package com.ecoolex.ying.space.ws;

import java.util.List;

import com.ecoolex.framework.common.pojo.Page;
import com.ecoolex.framework.common.pojo.Pagination;
import com.ecoolex.framework.common.pojo.Sorting;
import com.ecoolex.ying.space.entity.MarktingWholeHouseCase;
import com.ecoolex.ying.space.entity.WholeHouseCase;
import com.ecoolex.ying.space.entity.WholeHouseCaseItems;
import com.ecoolex.ying.space.pojo.AddWholeHouseCaseItemsDTO;

public interface WholeHouseCaseService {
	
	WholeHouseCase addWholeHouseCase(WholeHouseCase record,List<AddWholeHouseCaseItemsDTO> itemsDTOList,String createUser);
	
	WholeHouseCase editWholeHouseCase(WholeHouseCase record,List<AddWholeHouseCaseItemsDTO> itemsDTOList,String updateUser);
	
	void deleteWholeHouseCase(WholeHouseCase record,String updateUser);
	
	void onlineWholeHouseCase(WholeHouseCase record,String updateUser);
	
	void offlineWholeHouseCase(WholeHouseCase record,String updateUser);
	
	WholeHouseCase getWholeHouseCaseById(Integer caseId);
	
	WholeHouseCase getWholeHouseCaseByIdForH5(Integer caseId);
	
	WholeHouseCase getWholeHouseCaseByOutsourcingPackagedId(Integer outsourcingPackagedId);
	
	Pagination<WholeHouseCase> queryWholeHouseCase(Boolean online,String name,Sorting[] sorts, Page page);
	
	List<WholeHouseCaseItems> getWholeHouseCaseItemsByCaseId(Integer caseId);
	
	MarktingWholeHouseCase addMarktingWholeHouseCase(MarktingWholeHouseCase record,String createUser);
	
	void deleteMarktingWholeHouseCase(MarktingWholeHouseCase record,String updateUser);
	
	MarktingWholeHouseCase getMarktingWholeHouseCaseById(Integer id);
	
	MarktingWholeHouseCase getMarktingWholeHouseCaseByCaseId(Integer caseId);
	
	Pagination<MarktingWholeHouseCase> queryMarktingWholeHouseCase(String name,Sorting[] sorts, Page page);
	
	Pagination<MarktingWholeHouseCase> queryMarktingWholeHouseCaseForH5(String name,Sorting[] sorts, Page page);
	
	MarktingWholeHouseCase getMarktingWholeHouseCaseByIdForH5(Integer id);
	
	long countByItemsName(String itemsName);
	
	Pagination<String> queryStyleDescriptionByItemsName(String itemsName,Page page);
	
	Pagination<WholeHouseCaseItems> queryByItemsNameAndStyleDescription(String itemsName,String styleDescription,Page page);
}
